Compiler optimization techniques for OpenMP programs
نویسندگان
چکیده
In this paper, we present some compiler optimization techniques for explicit parallel programs using OpenMP API. To enable optimizations across threads, we designed data ow analysis techniques in which interaction between threads is e ectively modeled. Structured description of parallelism and relaxed memory consistency in OpenMP make the analyses e ective and eÆcient. We show algorithms for reaching de nitions analysis, memory synchronization analysis, and cross-loop data dependence analysis for parallel loops. Our primary target is a compiler-directed software DSM system where aggressive compiler optimizations for software-implemented coherence scheme are crucial to obtain good performance. We also show optimizations applicable to general OpenMP implementations, namely redundant barrier removal and privatization of dynamically allocated objects. We consider compiler optimizations are bene cial for performance portability across various platforms and non-expert programmers. Experimental results for the coherency optimization in a compilerdirected software DSM system shows that aggressive compiler optimizations are quite e ective for a shared-write intensive program because coherenceinduced communication volume in such a program is much larger than the those for shared-read intensive programs.
منابع مشابه
Supporting Realistic OpenMP Applications on a Commodity Cluster of Workstations
This paper describes compiler techniques that can translate standard OpenMP applications into code for distributed computer systems and optimization techniques to enhance the performance of realistic OpenMP application. OpenMP has emerged as an important model and language extension for shared-memory parallel programming. However, despite OpenMP's success on these platforms, it is not currently...
متن کاملPractical Compiler Techniques on Efficient Multithreaded Code Generation for OpenMP Programs
State-of-the-art multiprocessor systems pose several difficulties: (i) the user has to parallelize the existing serial code; (ii) explicitly threaded programs using a thread library are not portable; (iii) writing efficient multi-threaded programs requires intimate knowledge of machine’s architecture and micro-architecture. Thus, well-tuned parallelizing compilers are in high demand to leverage...
متن کاملDesign of OpenMP Compiler for an SMP Cluster
In this paper, we present a design of OpenMP compiler for an SMP cluster. Although clusters of SMPs are expected to be one of the cost-e ective parallel computing platforms, both of inter and intra node parallelism must be exploited to achieve high performance. These two levels of structure complicate parallel programming. The OpenMP is an emerging standard for parallel programming on shared-me...
متن کاملImpact of OpenMP Optimizations for the MGCG Method
This paper shows several optimization techniques in OpenMP and investigates their impact using the MGCG method. MGCG is important for not only an e cient solver but also benchmarking since it includes several essential operations for high-performance computing. We evaluate several optimizing techniques on an SGI Origin 2000 using the SGI MIPSpro compiler and the RWCP Omni OpenMP compiler. In th...
متن کاملDynamically Adaptive Parallel Programs
Dynamic program optimization is the only recourse for optimizing compilers when machine and program parameters necessary for applying an optimization technique are unknown until runtime. With the movement toward portable parallel programs, facilitated by language standards such as OpenMP, many of the optimizations developed for high-performance machines can no longer be applied prior to runtime...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Scientific Programming
دوره 9 شماره
صفحات -
تاریخ انتشار 2001